package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjPrdBscInfoDTO;
import cn.fl.project.vo.PrjPrdBscInfoVO;

/**
 * @Description: 项目产品基础信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class PrjPrdBscInfoVOTransform {

	/**
	 * DTO 转 VO
	 * 
	 *            PrjPrdBscInfoDTO
	 * @return PrjPrdBscInfoVO
	 */
	public static PrjPrdBscInfoVO toVO(PrjPrdBscInfoDTO dto) {
		PrjPrdBscInfoVO vo = null;
		if (dto != null) {
			vo = new PrjPrdBscInfoVO();
			vo.setId(dto.getId());
			vo.setPrjId(dto.getPrjId());// 项目ID
			vo.setPrdId(dto.getPrdId());// 产品ID
			vo.setEvaLvl(dto.getEvaLvl());// 资产评级
			vo.setPrdNm(dto.getPrdNm());// 产品名称
			vo.setPrdMdl(dto.getPrdMdl());// 产品型号
			vo.setPrdTypCd(dto.getPrdTypCd());// 产品类型代码（不同事业部设置不同）
			vo.setBrCd(dto.getBrCd());// 产品品牌代码（不同事业部设置不同）
			vo.setIsNew(dto.getIsNew());// 是否新产品
			vo.setUsedPd(dto.getUsedPd());// 产品已使用期限（月）
			vo.setRsrvPc(dto.getRsrvPc());// 产品留购价（元）- 按分保存
			vo.setGuidePc(dto.getGuidePc());// 产品指导价（元）- 按分保存
			vo.setMfrGuidePc(dto.getMfrGuidePc());// 厂商指导价 - 按分保存
			vo.setPrdQty(dto.getPrdQty());// 产品数量
			vo.setPrdUntCd(dto.getPrdUntCd());// 计量单位（PRD0017）
			vo.setPrdAmt(dto.getPrdAmt());// 产品金额（元）- 按分保存
			vo.setPrdUseCd(dto.getPrdUseCd());// 产品用途代码
			vo.setPrdRem(dto.getPrdRem());// 备注
			vo.setSplId(dto.getSplId());// 供应商ID
			vo.setSplNm(dto.getSplNm());// 供应商名称
			vo.setSplStarLevel(dto.getSplStarLevel());// 供应商星级
			vo.setMfrId(dto.getMfrId());// 厂商ID
			vo.setMfrNm(dto.getMfrNm());// 厂商名称
			vo.setIrrPct(dto.getIrrPct());// 实际收益率(IRR)
			vo.setIsDel(dto.getIsDel());// 是否删除（1：是，0：否）
			vo.setCertDt(dto.getCertDt());// 二手设备-登记证书日期
			vo.setInvAmt(dto.getInvAmt());// 发票金额(元)
			vo.setBrCdNm(dto.getBrCdNm());//品牌名称
			vo.setPrdTypCdNm(dto.getPrdTypCdNm());//分类名称
			vo.setPrdDtlId(dto.getPrdDtlId());//产品明细ID
			vo.setIsNewNm(dto.getIsNewNm());
			vo.setPrdUntCdNm(dto.getPrdUntCdNm());//单位名称
			vo.setDeprAmt(dto.getDeprAmt());//折旧金额
			vo.setDeprRate(dto.getDeprRate());//折旧率
			vo.setCarCl(dto.getCarCl());
			vo.setCtrValue(dto.getCtrValue());
			vo.setSplMfrId(dto.getSplMfrId());
			vo.setSplMfrNm(dto.getSplMfrNm());
			if(dto.getPrjPrdExtDTO()!=null){
				vo.setPrjPrdExtVO(PrjPrdExtVOTransform.toVO(dto.getPrjPrdExtDTO()));
			}
			vo.setPrjPrdDtlList(PrjPrdDtlVOTransform.toVOList(dto.getPrjPrdDtlList()));
			vo.setPayPd(dto.getPayPd());//融资期数
			vo.setSplAccNoId(dto.getSplAccNoId());//供应商账号ID
			vo.setLnkCompNm(dto.getLnkCompNm());//挂靠公司
			vo.setMarks(dto.getMarks());
			vo.setCtrNm(dto.getCtrNm());//实际控制人
			vo.setCtrTel(dto.getCtrTel());//实际控制人电话
			vo.setRemoveFlag(dto.getRemoveFlag());
			vo.setCrtTm(dto.getCrtTm());// 创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());// 创建人
			vo.setMdfTm(dto.getMdfTm());// 修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());// 修改人
			vo.setDtl(PrjPrdDtlVOTransform.toVO(dto.getDtl()));
			vo.setVinListStr(dto.getVinListStr());//vin列表
			vo.setCarStrcCfg(dto.getCarStrcCfg());//车身结构配置
			vo.setPrjSplBankAccRVOList(PrjSplBankAccRVOTransform.toVOList(dto.getPrjSplBankAccRDTOList()));
			vo.setLicenseCd(dto.getLicenseCd());
			vo.setPrdCd(dto.getPrdCd());
			vo.setModelNm(dto.getModelNm());
			vo.setStyleId(dto.getStyleId());
			vo.setCarStyleName(dto.getCarStyleName());
			vo.setPayWayCd(dto.getPayWayCd());
			vo.setReceiveTypeCd(dto.getReceiveTypeCd());
            vo.setVehVal(dto.getVehVal());
            vo.setCustFina(dto.getCustFina());
            vo.setVehCheckCode(dto.getVehCheckCode());
            if(null!=dto.getPrjPrdSourceInfo()){
                vo.setPrjPrdSourceInfo(PrjPrdSourceInfoVOTransform.toVO(dto.getPrjPrdSourceInfo()));
            }
            vo.setReleaseDate(dto.getReleaseDate());
            vo.setCarSourceId(dto.getCarSourceId());
            vo.setCarNo(dto.getCarNo());
            vo.setLoanableAmt(dto.getLoanableAmt());
            vo.setIsAdvLic(dto.getIsAdvLic());
            vo.setAdvLicTm(dto.getAdvLicTm());
            vo.setPrdStsCd(dto.getPrdStsCd());
			vo.setRecommendSplId(dto.getRecommendSplId());
			vo.setRecommendSplNm(dto.getRecommendSplNm());
			vo.setLnkCompId(dto.getLnkCompId());
			vo.setLnkCompNm(dto.getLnkCompNm());
			vo.setLnkCompMsg(dto.getLnkCompMsg());
			vo.setLnkCompType(dto.getLnkCompType());
			vo.setLnkStartLvl(dto.getLnkStartLvl());

			vo.setGuaranteePaymentType(dto.getGuaranteePaymentType());
			vo.setGuaranteePaymentId(dto.getGuaranteePaymentId());
			vo.setGuaranteePaymentNm(dto.getGuaranteePaymentNm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * 
	 *            PrjPrdBscInfoVO
	 * @return PrjPrdBscInfoDTO
	 */
	public static PrjPrdBscInfoDTO toDTO(PrjPrdBscInfoVO vo) {
		PrjPrdBscInfoDTO dto = null;
		if (vo != null) {
			dto = new PrjPrdBscInfoDTO();
			dto.setId(vo.getId());
			dto.setPrjId(vo.getPrjId());// 项目ID
			dto.setPrdId(vo.getPrdId());// 产品ID
			dto.setEvaLvl(vo.getEvaLvl());// 资产评级
			dto.setPrdNm(vo.getPrdNm());// 产品名称
			dto.setPrdMdl(vo.getPrdMdl());// 产品型号
			dto.setPrdTypCd(vo.getPrdTypCd());// 产品类型代码（不同事业部设置不同）
			dto.setBrCd(vo.getBrCd());// 产品品牌代码（不同事业部设置不同）
			dto.setIsNew(vo.getIsNew());// 是否新产品
			dto.setUsedPd(vo.getUsedPd());// 产品已使用期限（月）
			dto.setRsrvPc(vo.getRsrvPc());// 产品留购价（元）- 按分保存
			dto.setGuidePc(vo.getGuidePc());// 产品指导价（元）- 按分保存
			dto.setMfrGuidePc(vo.getMfrGuidePc());// 厂商指导价 - 按分保存
			dto.setPrdQty(vo.getPrdQty());// 产品数量
			dto.setPrdUntCd(vo.getPrdUntCd());// 计量单位（PRD0017）
			dto.setPrdAmt(vo.getPrdAmt());// 产品金额（元）- 按分保存
			dto.setPrdUseCd(vo.getPrdUseCd());// 产品用途代码
			dto.setPrdRem(vo.getPrdRem());// 备注
			dto.setSplId(vo.getSplId());// 供应商ID
			dto.setSplNm(vo.getSplNm());// 供应商名称
			dto.setSplStarLevel(vo.getSplStarLevel());// 供应商星级
			dto.setMfrId(vo.getMfrId());// 厂商ID
			dto.setMfrNm(vo.getMfrNm());// 厂商名称
			dto.setIrrPct(vo.getIrrPct());// 实际收益率(IRR)
			dto.setIsDel(vo.getIsDel());// 是否删除（1：是，0：否）
			dto.setCertDt(vo.getCertDt());// 二手设备-登记证书日期
			dto.setInvAmt(vo.getInvAmt());// 发票金额(元)
			dto.setBrCdNm(vo.getBrCdNm());//品牌名称
			dto.setPrdTypCdNm(vo.getPrdTypCdNm());//分类名称
			dto.setIsNewNm(vo.getIsNewNm());
			dto.setPrdDtlId(vo.getPrdDtlId());//商品明细ID
			dto.setPrdUntCdNm(vo.getPrdUntCdNm());//单位名称
			dto.setDeprAmt(vo.getDeprAmt());
			dto.setDeprRate(vo.getDeprRate());
			dto.setCarCl(vo.getCarCl());
			dto.setCtrValue(vo.getCtrValue());
			if(vo.getPrjPrdExtVO()!=null){
				dto.setPrjPrdExtDTO(PrjPrdExtVOTransform.toDTO(vo.getPrjPrdExtVO()));
			}
			dto.setPrjPrdDtlList(PrjPrdDtlVOTransform.toDTOList(vo.getPrjPrdDtlList()));
			dto.setSplAccNoId(vo.getSplAccNoId());//供应商ID
			dto.setRemoveFlag(vo.getRemoveFlag());
			dto.setCtrNm(vo.getCtrNm());//实际控制人
			dto.setCtrTel(vo.getCtrTel());//实际控制人电话
			dto.setMarks(vo.getMarks());
			dto.setPayPd(vo.getPayPd());//租赁期数
			dto.setCrtTm(vo.getCrtTm());// 创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());// 创建人
			dto.setMdfTm(vo.getMdfTm());// 修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());// 修改人
			dto.setDtl(PrjPrdDtlVOTransform.toDTO(vo.getDtl()));
			dto.setVinListStr(vo.getVinListStr());
			dto.setPrjSplBankAccRDTOList(PrjSplBankAccRVOTransform.toDTOList(vo.getPrjSplBankAccRVOList()));
			dto.setSplMfrId(vo.getSplMfrId());
			dto.setSplMfrNm(vo.getSplMfrNm());
			dto.setCarStrcCfg(vo.getCarStrcCfg());//车身结构配置
			dto.setLicenseCd(vo.getLicenseCd());
			dto.setPrdCd(vo.getPrdCd());
			dto.setStyleId(vo.getStyleId());
			dto.setModelNm(vo.getModelNm());
			dto.setCarStyleName(vo.getCarStyleName());
            dto.setPayWayCd(vo.getPayWayCd());
			dto.setReceiveTypeCd(vo.getReceiveTypeCd());
            dto.setVehVal(vo.getVehVal());
            dto.setCustFina(vo.getCustFina());
            dto.setVehCheckCode(vo.getVehCheckCode());
            if(null!=vo.getPrjPrdSourceInfo()){
                dto.setPrjPrdSourceInfo(PrjPrdSourceInfoVOTransform.toDTO(vo.getPrjPrdSourceInfo()));
            }
            dto.setReleaseDate(vo.getReleaseDate());
            dto.setCarSourceId(vo.getCarSourceId());
            dto.setCarNo(vo.getCarNo());
            dto.setLoanableAmt(vo.getLoanableAmt());
            dto.setIsAdvLic(vo.getIsAdvLic());
            dto.setAdvLicTm(vo.getAdvLicTm());
			dto.setPrdStsCd(vo.getPrdStsCd());
			dto.setRecommendSplId(vo.getRecommendSplId());
			dto.setRecommendSplNm(vo.getRecommendSplNm());
			dto.setLnkCompId(vo.getLnkCompId());
			dto.setLnkCompNm(vo.getLnkCompNm());
			dto.setLnkCompMsg(vo.getLnkCompMsg());
			dto.setLnkCompType(vo.getLnkCompType());
			dto.setLnkStartLvl(vo.getLnkStartLvl());

			dto.setGuaranteePaymentType(vo.getGuaranteePaymentType());
			dto.setGuaranteePaymentId(vo.getGuaranteePaymentId());
			dto.setGuaranteePaymentNm(vo.getGuaranteePaymentNm());

		}
		return dto;
	}

	/**
	 * DTO集合 转 VO集合
	 * 
	 * @return List<PrjPrdBscInfoVO>
	 */
	public static List<PrjPrdBscInfoVO> toVOList(List<PrjPrdBscInfoDTO> list) {
		List<PrjPrdBscInfoVO> voList = new ArrayList<PrjPrdBscInfoVO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (PrjPrdBscInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}

	/**
	 * VO集合 转 DTO集合
	 * 
	 * @param list
	 *            List<PrjPrdBscInfoVO>
	 * @return List<PrjPrdBscInfoDTO>
	 */
	public static List<PrjPrdBscInfoDTO> toDTOList(List<PrjPrdBscInfoVO> list) {
		List<PrjPrdBscInfoDTO> dtoList = new ArrayList<PrjPrdBscInfoDTO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (PrjPrdBscInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
